<classes> 
 <class name="DMInheritanceRelationship" assembly="FireStarterModeller.BO" displayName="DM Super Class">
    <property name="InheritanceRelationshipID" type="Guid" readWriteRule="WriteNew" compulsory="true" displayName="InheritanceRelationshipID" />
    <property name="SuperClassID" type="Guid" compulsory="true" displayName="Super Class" description="The Unique Identifier for the Super Class mapped by this inheritance relationship">
      <businessObjectLookupList class="DMClass" assembly="FireStarterModeller.BO" timeout="0" />
    </property>
    <property name="Identity" displayName="ID" description="The Sub Class's Property that relates the Sub Class to its Super Class via the SuperClass's ID Property" />
    <property name="Discriminator" description="The Discriminator is the Field/Property in the Super Class that is used to identify what sub type of Business Object is being stored." />
    <property name="Generated" type="Boolean" default="False" compulsory="true" />
    <property name="InheritanceType" type="ORMapping" assembly="Habanero.Base" default="SingleTableInheritance" compulsory="true" displayName="OR Mapping" description="The Type of Inheritance Object Relational Mapping being used for this relationship">
      <simpleLookupList>
        <item display="ClassTableInheritance" value="ClassTableInheritance" />
        <item display="SingleTableInheritance" value="SingleTableInheritance" />
        <item display="ConcreteTableInheritance" value="ConcreteTableInheritance" />
      </simpleLookupList>
    </property>
    <property name="SubClassID" type="Guid" compulsory="true" displayName="Sub Class" description="The Unique Identifier for the Sub class mapped by this inheritance relationship" />
    <property name="IdentityPropertyID" type="Guid" displayName="Identity Property" description="The Sub Class's Property that relates the Sub Class to its Super Class via the SuperClass's ID Property" />
    <primaryKey>
      <prop name="InheritanceRelationshipID" />
    </primaryKey>
    <relationship name="IdentityProperty" type="single" relatedClass="DMProperty" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="IdentityPropertyID" relatedProperty="PropertyID" />
    </relationship>
    <relationship name="SubClass" type="single" relatedClass="DMClass" reverseRelationship="InheritanceSuperClassRelationship" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="SubClassID" relatedProperty="ClassID" />
    </relationship>
    <relationship name="SuperClass" type="single" relatedClass="DMClass" reverseRelationship="SubClassRelationships" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="SuperClassID" relatedProperty="ClassID" />
    </relationship>
    <ui>
      <form>
        <field label="Super Class:" property="SuperClassID" type="ComboBox" mapperType="SuperClassLookupComboBoxMapper" mapperAssembly="FireStarterModeller.UI" />
        <field label="OR Mapping:" property="InheritanceType" type="ComboBox" />
        <field label="Discriminator:" property="Discriminator" type="ComboBox" mapperType="CollectionComboBoxMapper" mapperAssembly="Habanero.Faces.Base" />
        <field label="ID:" property="IdentityPropertyID" type="ComboBox" />
      </form>
    </ui>
  </class>

  <class name="GenerationSettings" assembly="FireStarterModeller.BO" displayName="Generation Settings">
    <property name="GenerationSettingsID" type="Guid" readWriteRule="WriteNew" compulsory="true" />
    <property name="SolutionID" type="Guid" compulsory="true" displayName="Solution">
      <businessObjectLookupList class="DMSolution" assembly="FireStarterModeller.BO" />
    </property>
    <property name="DatabaseConnectionID" type="Guid" displayName="Database Connection">
      <businessObjectLookupList class="DatabaseConnectionInfo" assembly="FireStarter.DB.Schema.BO" timeout="0" />
    </property>
    <property name="SolutionDirectory" />
    <property name="HabaneroDllPath" default="D:\Systems\Habanero\trunk\bin" />
    <property name="SolutionTypeID" type="Guid">
      <businessObjectLookupList class="SolutionType" assembly="FireStarterModeller.BO" timeout="0" />
    </property>
    <property name="CodeTemplateLibraryID" type="Guid">
      <businessObjectLookupList class="CodeTemplateLibrary" assembly="FireStarterModeller.BO" sort="CodeTemplateLibraryName" />
    </property>
    <property name="CodeTemplateLibraryName" type="CodeTemplateEnum" assembly="FireStarterModeller.BO" default="CSharpVisualStudio2008" />
    <primaryKey>
      <prop name="GenerationSettingsID" />
    </primaryKey>
    <relationship name="CodeTemplateLibrary" type="single" relatedClass="CodeTemplateLibrary" reverseRelationship="GenerationSettings" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="CodeTemplateLibraryID" relatedProperty="CodeTemplateLibraryID" />
    </relationship>
    <relationship name="DatabaseConnection" type="single" relatedClass="DatabaseConnectionInfo" relatedAssembly="FireStarter.DB.Schema.BO">
      <relatedProperty property="DatabaseConnectionID" relatedProperty="DatabaseConnectionID" />
    </relationship>
    <relationship name="ProjectTypeGenerations" type="multiple" relatedClass="ProjectTypeGeneration" reverseRelationship="GenerationSettings" relatedAssembly="FireStarterModeller.BO">
      <relatedProperty property="GenerationSettingsID" relatedProperty="GenerationSettingsID" />
    </relationship>
    <relationship name="Solution" type="single" relatedClass="DMSolution" reverseRelationship="GenerationSettings" relatedAssembly="FireStarterModeller.BO" deleteAction="DeleteRelated">
      <relatedProperty property="SolutionID" relatedProperty="SolutionID" />
    </relationship>
    <relationship name="SolutionType" type="single" relatedClass="SolutionType" reverseRelationship="GenerationSettings" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="SolutionTypeID" relatedProperty="SolutionTypeID" />
    </relationship>
    <ui>
      <grid>
        <column heading="Solution Name" property="Solution.SolutionName" />
        <column heading="Database Connection" property="DatabaseConnectionID" />
        <column heading="Solution Directory" property="SolutionDirectory" />
        <column heading="Habanero Dll Path" property="HabaneroDllPath" />
        <column heading="Solution Type I D" property="SolutionTypeID" />
        <column heading="Code Template Library" property="CodeTemplateLibraryName" />
      </grid>
      <form title="Edit Generation Settings">
        <field label="Solution Name:" property="Solution.SolutionName" />
        <field label="Database Connection:" property="DatabaseConnectionID" type="ExtendedComboBoxWin" assembly="Habanero.Faces.Win" mapperType="DBConnectionInfoMapper" mapperAssembly="FireStarterModeller.UI" />
        <field label="Solution Directory:" property="SolutionDirectory" type="DirectorySelectorControl" assembly="FireStarterModeller.UI" mapperType="DirectorySelectorMapper" mapperAssembly="FireStarterModeller.UI" />
        <field label="Habanero Dll Path:" property="HabaneroDllPath" type="DirectorySelectorControl" assembly="FireStarterModeller.UI" mapperType="DirectorySelectorMapper" mapperAssembly="FireStarterModeller.UI" />
        <field label="Solution Type:" property="SolutionTypeID" type="ComboBox" />
        <field label="Code Template Library:" property="CodeTemplateLibraryName" type="ComboBox" mapperType="EnumComboBoxMapper" mapperAssembly="Habanero.Faces.Base" />
      </form>
    </ui>
  </class>
  <class name="ModelModification" assembly="FireStarter.DB.Schema.BO" displayName="Model Modification">
    <property name="ModelModificationID" type="Guid" readWriteRule="WriteNew" compulsory="true" />
    <property name="Description" />
    <property name="ReverseEngineeringID" type="Guid">
      <businessObjectLookupList class="ReverseEngineering" assembly="Firestarter.DB.Schema.BO" />
    </property>
    <property name="Approved" type="Boolean" default="true" />
    <primaryKey>
      <prop name="ModelModificationID" />
    </primaryKey>
    <relationship name="ReverseEngineering" type="single" relatedClass="ReverseEngineering" reverseRelationship="ModelModifications" relatedAssembly="Firestarter.DB.Schema.BO" deleteAction="DoNothing">
      <relatedProperty property="ReverseEngineeringID" relatedProperty="ReverseEngineeringID" />
    </relationship>
    <ui>
      <grid>
        <column heading="Approved" property="Approved" width="80" />
        <column heading="Description" property="Description" editable="false" width="400" />
      </grid>
    </ui>
  </class>
  <class name="ProjectType" assembly="FireStarterModeller.BO" displayName="Project Type">
    <property name="ProjectTypeID" type="Guid" readWriteRule="WriteNew" compulsory="true" />
    <property name="Name" compulsory="true" />
    <key name="Duplicate" message="There is another Project Type with the same name. Please Ensure that you have not captured this Project Type already.">
      <prop name="Name" />
    </key>
    <primaryKey>
      <prop name="ProjectTypeID" />
    </primaryKey>
    <relationship name="ProjectSolutionTypes" type="multiple" relatedClass="SolutionTypeProject" reverseRelationship="ProjectType" relatedAssembly="FireStarterModeller.BO">
      <relatedProperty property="ProjectTypeID" relatedProperty="ProjectTypeID" />
    </relationship>
    <ui>
      <grid>
        <column heading="Name" property="Name" />
      </grid>
      <form title="Add/Edit Project Type">
        <field label="Name:" property="Name" />
      </form>
    </ui>
  </class>
  <class name="ProjectTypeGeneration" assembly="FireStarterModeller.BO" displayName="Project Type Generation">
    <property name="ProjectTypeGenerationID" type="Guid" readWriteRule="WriteNew" compulsory="true" displayName="Project Type Generation" />
    <property name="GenerationSettingsID" type="Guid">
      <businessObjectLookupList class="GenerationSettings" assembly="FireStarterModeller.BO" />
    </property>
    <property name="ProjectTypeID" type="Guid" compulsory="true">
      <businessObjectLookupList class="ProjectType" assembly="FireStarterModeller.BO" />
    </property>
    <property name="ProjectName" />
    <property name="ToBeGenerated" type="Boolean" default="true" />
    <primaryKey>
      <prop name="ProjectTypeGenerationID" />
    </primaryKey>
    <relationship name="GenerationSettings" type="single" relatedClass="GenerationSettings" reverseRelationship="ProjectTypeGenerations" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="GenerationSettingsID" relatedProperty="GenerationSettingsID" />
    </relationship>
    <relationship name="ProjectType" type="single" relatedClass="ProjectType" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="ProjectTypeID" relatedProperty="ProjectTypeID" />
    </relationship>
    <ui>
      <grid>
        <column heading="Project Type" property="ProjectTypeID" editable="false" />
        <column heading="Project Name" property="ProjectName" width="200" />
        <column heading="To Be Generated" property="ToBeGenerated" type="DataGridViewCheckBoxColumn" />
      </grid>
      <form>
        <field label="Project Type:" property="ProjectTypeID" type="ComboBox" editable="false" />
        <field label="Project Name:" property="ProjectName" />
        <field label="To Be Generated?" property="ToBeGenerated" type="CheckBox" />
      </form>
    </ui>
  </class>
  <class name="ReverseEngineering" assembly="Firestarter.DB.Schema.BO" displayName="Reverse Engineering">
    <property name="ReverseEngineeringID" type="Guid" readWriteRule="WriteNew" compulsory="true" />
    <property name="DatabaseConnectionID" type="Guid" />
    <property name="StoredDatabaseID" type="Guid" />
    <property name="ReverseEngineeringSettingsID" type="Guid" />
    <property name="SolutionID" type="Guid">
      <businessObjectLookupList class="DMSolution" assembly="FireStarterModeller.BO" />
    </property>
    <primaryKey>
      <prop name="ReverseEngineeringID" />
    </primaryKey>
    <relationship name="DatabaseConnectionInfo" type="single" relatedClass="DatabaseConnectionInfo" reverseRelationship="ReverseEngineeringsUsingThisConnection" relatedAssembly="FireStarter.DB.Schema.BO" deleteAction="DoNothing" relationshipType="Aggregation">
      <relatedProperty property="DatabaseConnectionID" relatedProperty="DatabaseConnectionID" />
    </relationship>
    <relationship name="ModelModifications" type="multiple" relatedClass="ModelModification" reverseRelationship="ReverseEngineering" relatedAssembly="FireStarter.DB.Schema.BO" relationshipType="Aggregation">
      <relatedProperty property="ReverseEngineeringID" relatedProperty="ReverseEngineeringID" />
    </relationship>
    <relationship name="ReverseEngineeringSettings" type="single" relatedClass="ReverseEngineeringSettings" reverseRelationship="ReverseEngineering" relatedAssembly="FireStarter.DB.Schema.BO" deleteAction="DeleteRelated" relationshipType="Aggregation">
      <relatedProperty property="ReverseEngineeringSettingsID" relatedProperty="ReverseEngineeringSettingsID" />
    </relationship>
    <relationship name="Solution" type="single" relatedClass="DMSolution" reverseRelationship="ReverseEngineering" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="SolutionID" relatedProperty="SolutionID" />
    </relationship>
    <relationship name="StoredDatabase" type="single" relatedClass="DBDatabase" reverseRelationship="StoredByReverseEngineering" relatedAssembly="FireStarter.DB.Schema.BO" relationshipType="Aggregation">
      <relatedProperty property="StoredDatabaseID" relatedProperty="DatabaseID" />
    </relationship>
  </class>
  <class name="ReverseEngineeringSettings" assembly="FireStarter.DB.Schema.BO" displayName="Reverse Engineering Settings">
    <property name="ReverseEngineeringSettingsID" type="Guid" readWriteRule="WriteNew" compulsory="true" />
    <property name="ImportTables" type="Boolean" default="True" description="Sets whether to Import tables from the Database or not"/>
    <property name="ImportViews" type="Boolean" description="Sets whether to Import views from the Database or not"/>
    <property name="TableNameFilter" description="You can apply a filter e.g. to only import tables that start with tb the filter for this would be 'tb%' or only to import tables ending with Security '%Security'"/>
    <property name="TableSchemaFilter" description="You can apply a filter to only import tables that belong to a certain schema in your database e.g. 'MasterData'"/>
    <property name="ViewNameFilter" description="You can apply a filter e.g. to only import Views that start with vw the filter for this would be 'vw%' or only to import views ending with Security '%Security'"/>
    <property name="ViewSchemaFilter" description="You can apply a filter to only import views that belong to a certain schema in your database e.g. 'MasterData'"/>
    <primaryKey>
      <prop name="ReverseEngineeringSettingsID" />
    </primaryKey>
    <relationship name="ReverseEngineering" type="single" relatedClass="ReverseEngineering" reverseRelationship="ReverseEngineeringSettings" relatedAssembly="FireStarter.DB.Schema.BO" deleteAction="DoNothing" owningBOHasForeignKey="false">
      <relatedProperty property="ReverseEngineeringSettingsID" relatedProperty="ReverseEngineeringSettingsID" />
    </relationship>
    <ui>
      <form>
        <field label="Import Tables?" property="ImportTables" type="CheckBox" />
        <field label="Import Views?" property="ImportViews" type="CheckBox" />
      </form>
    </ui>
  </class>
  <class name="SolutionType" assembly="FireStarterModeller.BO" displayName="Solution Type">
    <property name="SolutionTypeID" type="Guid" readWriteRule="WriteNew" compulsory="true" />
    <property name="Name" compulsory="true" />
    <key name="Duplicate" message="There is another Solution Type with the same name. Please Ensure that you have not captured this Solution Type already.">
      <prop name="Name" />
    </key>
    <primaryKey>
      <prop name="SolutionTypeID" />
    </primaryKey>
    <relationship name="GenerationSettings" type="multiple" relatedClass="GenerationSettings" reverseRelationship="SolutionType" relatedAssembly="FireStarterModeller.BO">
      <relatedProperty property="SolutionTypeID" relatedProperty="SolutionTypeID" />
    </relationship>
    <relationship name="SolutionTypeProjects" type="multiple" relatedClass="SolutionTypeProject" reverseRelationship="SolutionType" relatedAssembly="FireStarterModeller.BO">
      <relatedProperty property="SolutionTypeID" relatedProperty="SolutionTypeID" />
    </relationship>
    <ui>
      <grid>
        <column heading="Name" property="Name" />
      </grid>
      <form title="Add/Edit Solution Type">
        <field label="Name:" property="Name" />
      </form>
    </ui>
  </class>
  <class name="SolutionTypeProject" assembly="FireStarterModeller.BO" displayName="Solution Type Project"/>
  <class name="UIControlMapperType" assembly="FireStarterModeller.BO" displayName="UI Control Mapper Type">
    <property name="UIControlMapperTypeID" type="Guid" readWriteRule="WriteNew" compulsory="true" />
    <property name="AssemblyName" />
    <property name="TypeName" />
    <property name="SolutionID" type="Guid" displayName="Project Info">
      <businessObjectLookupList class="DMSolution" assembly="FireStarterModeller.BO" />
    </property>
    <key name="AK1">
      <prop name="AssemblyName" />
      <prop name="SolutionID" />
      <prop name="TypeName" />
    </key>
    <primaryKey>
      <prop name="UIControlMapperTypeID" />
    </primaryKey>
    <relationship name="Solution" type="single" relatedClass="DMSolution" reverseRelationship="UIControlMapperTypes" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="SolutionID" relatedProperty="SolutionID" />
    </relationship>
    <relationship name="UIFields" type="multiple" relatedClass="UIField" reverseRelationship="UIControlMapperType" relatedAssembly="FireStarterModeller.BO">
      <relatedProperty property="UIControlMapperTypeID" relatedProperty="UIControlMapperTypeID" />
    </relationship>
    <ui>
      <grid>
        <column heading="Assembly Name" property="AssemblyName" />
        <column heading="Type Name" property="TypeName" />
      </grid>
      <form>
        <field label="Assembly Name:" property="AssemblyName" />
        <field label="Type Name:" property="TypeName" />
        <field label="Project Info:" property="SolutionID" type="ComboBox" />
      </form>
    </ui>
  </class>
  <class name="UIControlType" assembly="FireStarterModeller.BO" displayName="UI Control Type">
    <property name="AssemblyName" compulsory="true" />
    <property name="TypeName" compulsory="true" />
    <property name="UIControlTypeID" type="Guid" readWriteRule="WriteNew" compulsory="true" />
    <property name="SolutionID" type="Guid" compulsory="true" displayName="Solution">
      <businessObjectLookupList class="DMSolution" assembly="FireStarterModeller.BO" />
    </property>
    <key name="AK1">
      <prop name="AssemblyName" />
      <prop name="SolutionID" />
      <prop name="TypeName" />
    </key>
    <primaryKey>
      <prop name="UIControlTypeID" />
    </primaryKey>
    <relationship name="Solution" type="single" relatedClass="DMSolution" reverseRelationship="UIControlTypes" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
      <relatedProperty property="SolutionID" relatedProperty="SolutionID" />
    </relationship>
    <relationship name="UIFields" type="multiple" relatedClass="UIField" reverseRelationship="UIControlType" relatedAssembly="FireStarterModeller.BO">
      <relatedProperty property="UIControlTypeID" relatedProperty="UIControlTypeID" />
    </relationship>
    <ui>
      <grid>
        <column heading="Type Name" property="TypeName" />
        <column heading="Assembly Name" property="AssemblyName" />
      </grid>
      <form>
        <field label="Assembly Name:" property="AssemblyName" />
        <field label="Type Name:" property="TypeName" />
        <field label="Project Info:" property="SolutionID" type="ComboBox" />
      </form>
    </ui>
  </class>
  <class name="UIGridColumnControlType" assembly="FireStarterModeller.BO" displayName="UI Grid Column Control Type">
  <property name="UIParameterID" type="Guid" readWriteRule="WriteNew" compulsory="true" />
  <property name="Name" compulsory="true" />
  <property name="Value" compulsory="true" />
  <property name="Generated" type="Boolean" default="False" compulsory="true" />
  <property name="UIPropID" type="Guid" />
  <primaryKey>
    <prop name="UIParameterID" />
  </primaryKey>
  <relationship name="UIProp" type="single" relatedClass="UIProp" reverseRelationship="UIParameters" relatedAssembly="FireStarterModeller.BO" deleteAction="DoNothing">
    <relatedProperty property="UIPropID" relatedProperty="UIPropID" />
  </relationship>
  <ui>
    <grid>
      <column heading="Name" property="Name" />
    </grid>
    <form>
      <field label="Name:" property="Name" />
      <field label="Value:" property="Value" />
    </form>
  </ui>
  </class>
</classes>